package com.xys.myapplication; import android.animation.Animator; import android.animation.AnimatorListenerAdapter; import android.app.Activity; import android.os.Bundle; import android.support.v7.widget.DefaultItemAnimator; import android.support.v7.widget.GridLayoutManager; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.AdapterView; import android.widget.Spinner; import java.util.ArrayList; import java.util.List; public class RecyclerTest extends Activity { private RecyclerView mRcList; private RecyclerAdapter mAdapter; private RecyclerView.LayoutManager mLayoutManager; private Spinner mSpinner; private List<String> mData = new ArrayList<String>(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.recycler); mRcList = (RecyclerView) findViewById(R.id.rc_list); mLayoutManager = new LinearLayoutManager(this); mRcList.setLayoutManager(mLayoutManager); mRcList.setHasFixedSize(true); // 设置显示动画 mRcList.setItemAnimator(new DefaultItemAnimator()); mSpinner = (Spinner) findViewById(R.id.spinner); mSpinner.setOnItemSelectedListener( new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { if (position == 0) { mRcList.setLayoutManager( // 设置为线性布局 new LinearLayoutManager( RecyclerTest.this)); } else if (position == 1) { mRcList.setLayoutManager( // 设置为表格布局 new GridLayoutManager( RecyclerTest.this, 3)); } else if (position == 2) { } } @Override public void onNothingSelected(AdapterView<?> parent) { } }); // 增加测试数据 mData.add("Recycler"); mData.add("Recycler"); mData.add("Recycler"); mAdapter = new RecyclerAdapter(mData); mRcList.setAdapter(mAdapter); mAdapter.setOnItemClickListener( new RecyclerAdapter.OnItemClickListener() { @Override public void onItemClick(final View view, int position) { // 设置点击动画 view.animate() .translationZ(15F).setDuration(300) .setListener(new AnimatorListenerAdapter() { @Override public void onAnimationEnd(Animator animation) { super.onAnimationEnd(animation); view.animate() .translationZ(1f) .setDuration(500).start(); } }).start(); } }); } public void addRecycler(View view) { mData.add("Recycler"); int position = mData.size(); if (position > 0) { mAdapter.notifyDataSetChanged(); } } public void delRecycler(View view) { int position = mData.size(); if (position > 0) { mData.remove(position - 1); mAdapter.notifyDataSetChanged(); } } }